#include <QtGui>

#include "imagewidget.h"

ImageWidget::ImageWidget(QWidget *parent)
    : QLabel(parent)
{
}

ImageWidget::ImageWidget(const QString &fileName, QWidget *parent)
    : QLabel(parent)
{
    open(fileName);
}

ImageWidget::ImageWidget(const QImage &image, QWidget *parent)
    : QLabel(parent)
{
    setImage(image);
}

bool ImageWidget::open(const QString& path)
{
    QString fileName;
    if (path.isNull())
        fileName = QFileDialog::getOpenFileName(this);
    else
        fileName = path;

    if (!fileName.isEmpty()) {
        QPixmap pixmap(fileName);
        if (pixmap.isNull()) {
            QMessageBox::information(this, tr("ImageWidget"),
                                     tr("Cannot load %1.").arg(fileName));
        } else {
            setPixmap(pixmap);
            return true;
        }
    }
    return false;
}

bool ImageWidget::save(const QString& fileName)
{
    return pixmap()->save(fileName);
}

void ImageWidget::setImage(const QImage &image)
{
    if (image.isNull())
	return;
    setPixmap(QPixmap::fromImage(image));
}

QImage ImageWidget::image() const
{
    return pixmap()->toImage();
}
